package com.xintai.approval.mapper;

import com.xintai.approval.domain.NodeConfig;
import com.xintai.approval.domain.NodeUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface NodeConfigMapper {
    /**
     * 获取开始
     * @param flowId
     * @return
     */
    NodeConfig getStart(Long flowId);
    /**
     * 增加流程
     * @param nodeConfig
     */
    void addNodeConfig(NodeConfig nodeConfig);

    /**
     * 修改上级关联下级id
     * @param id
     * @param childNodeId
     */
    void upDataNodeConfig(@Param("id")Long id,@Param("childNodeId") Long childNodeId);

    /**
     * 修改条件关联下级id
     * @param id
     * @param conditionNodesId
     */
    void upDataNodeConfigCondition(@Param("id")Long id, @Param("conditionNodesId") String conditionNodesId);

    /**
     * 修改用户
     * @param id
     * @param nodeUserListIds
     */
    void upDataNodeUserId(@Param("id")Long id,@Param("nodeUserListIds") String nodeUserListIds);

    /**
     * 修改条件
     * @param id
     * @param conditionListIds
     */
    void upDataConditionListIds(@Param("id")Long id, @Param("conditionListIds")String conditionListIds);

    /**
     * 获取下一级
     * @param childNodeId
     * @return
     */
    NodeConfig selectNodeConfig(Long childNodeId);

    /**
     * 路由下的条件
     * @param conditionNodesId
     * @return
     */
    List<NodeConfig> SelectConditionNodes(Long conditionNodesId);

    /**
     * 节点用户
     * @return
     */
    List<NodeUser> SelectNodeUserList(Long nodeUserListId);
}
